package com.glorystone.ins.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author:LiuSC
 * @Date:Created in 2018-03-20 09:32
 * @since: JDK 1.7
 * @Description:
 */
public @Data
class Repaying {

    private Long tid;

    private String ordNum;

    private String ordCode;

    private Long channelId;

    private Integer channelType;

    private Integer channelStatus;

    private Integer channelTBStatus;

    private String channelCName;

    private String channelPName;

    private String channelPhone;

    private Long insyrerId;

    private String insyrerName;

    private Long productId;

    private String insurant;

    private String orgIdCode;

    private String applicant;

    private String carOwner;

    private String phone;

    private String plateNum;

    private Integer vehicleType;

    private String preInsyrer;

    private Integer status;

    private String frameNumber;

    private String engineNum;

    private Integer typeInvestment;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime insyrerMaturityDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime surrenderDate;

    private Integer laonAccount;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime insureStartDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime insureEndDate;

    private Integer insureOverTime;

    private Long saleman;

    private String salemanName;

    private Integer typeInsurance2;

    private Integer typeInsurance;

    private BigDecimal mercialPremium;

    private BigDecimal pulsoryPremium;

    private BigDecimal vechcleVesselTax;

    private BigDecimal allPremium;

    private BigDecimal texPremium;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime dateIssuance;

    private Integer paySubject;

    private BigDecimal followPoint;

    private BigDecimal replenishPoint;

    private BigDecimal channelRebate;

    private Long createBy;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime createDate;

    private Long updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime updateDate;

    private Integer delFlag;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime datePolicy;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime expireDate;




    private Long capitalTid;

    private Long ordId;

    private BigDecimal mustPremium;

    private BigDecimal realPremium;

    private BigDecimal checkPremium;

    private Integer checkPremiumResult;

    private BigDecimal mustRebateAmt;

    private BigDecimal realRebateAmt;

    private BigDecimal followRpoundage;

    private BigDecimal chechFollowRpoundage;

    private Integer chechFollowResult;

    private BigDecimal replenishRpoundage;

    private BigDecimal checkReplenishRpoundage;

    private Integer checkReplenishResult;

    private BigDecimal payInsurerAmt;

    private Integer capitalStatus;

    private Integer opponent;

    private Integer tradeType;

    private Integer capitalSourcr;

    private Integer checkResult;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime checkDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime ticketOpenTime;

    private Integer isTicketOpen;

    private BigDecimal invoiceValue;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime receiptDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime payDate;

    private BigDecimal insureMustRebateAmt;

    private BigDecimal insureMustPremium;

    private BigDecimal insureRealPremium;

    private Integer capitalChannelStatus;

    private String remark;

    private Long capitalUpdateBy;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime capitalUpdateDate;

    private Long capitalCreateBy;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime capitalCreateDate;


    private String dateIssuanceStart;
    private String dateIssuanceEnd;
    private String surrenderDateStart;
    private String surrenderDateEnd;
}
